package com.itheima.edu.info.manager.dao;
import com.itheima.edu.info.manager.domain.Student;

/*
管理我们的数据仓库-数组
这里的方法都是给业务员使用的
 */
public class StudentDao {
    //创建长队为5的数组充当数据仓库
   private  static Student[] stuArray = new Student[5];
    //添加学生
    public boolean addStudent(Student stu) {
       //顶一个index表示当前索引位置
        int index = -1;
       //遍历数组
        for (int i = 0; i < stuArray.length; i++) {
            Student student = stuArray[i];
            if(student == null){
                index = i;   //如果有空缺有null,说名就是可以放入
                break;
            }
        }
       //出了循环根据index的值判断是否放入stu对象
        if(index == -1){
            return false;   //如果index循环出来还是-1说明数组没有null了就不需要
        }else{
            //将要添加的学生对象赋值到数组的index索引位置中
            stuArray[index] = stu;
            return true;
        }
    }
    //查看学生
    public Student[] findAllStudent() {
        return stuArray;
    }
    //删除学生
    public void deleteStudent(String delId) {
        //判断接受的id在数组长得索引位置利用了标记为思想,可以提取出来作为一个方法
        int index = getIndex(delId);
        //对判断出来的索引位置的值进行null赋值
        stuArray[index] = null;
    }
    //判断索引位置方法
    public int getIndex(String id){
        //先判断里面没有这个值
        int index = -1;
        //遍历这个数组
        for (int i = 0; i < stuArray.length; i++) {
            Student stus = stuArray[i];
            if(stus != null && stus.getId().equals(id)){
                index = i;
                break;
            }
        }
        return index;
    }
    //修改学生
    public void updataStudent(String updateId, Student newStu) {
        //获取索引位置的值
        int index = getIndex(updateId);
        //将新数据覆盖进去
        stuArray[index] = newStu;
    }
}

